
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
#define ll long long 

// 判断一个数是否为质数
bool isPrime(ll num) {
    if (num < 2) return false;
    for (ll i = 2; i * i <= num; ++i) {
        if (num % i == 0) return false;
    }
    return true;
}

// 判断一个数是否为T-prime数
bool check(ll num) {
    ll num_sqrt = (ll)sqrt(num);
    if (num_sqrt * num_sqrt != num) return false;  // 先判断是否为完全平方数
    return isPrime(num_sqrt);  // 如果是完全平方数，再判断其平方根是否为质数
}

int main() {
    int n;
    cin >> n;
    while (n--) {
        ll x;
        cin >> x;
        bool ret = check(x);
        if (ret) cout << "YES" << "\n";
        else cout << "NO" << endl;
    }
    return 0;
}
